The Automated “Monte Trader”
Nicholas Colosimo
Teammates: Chase Stanton & Paxton Schroeder
Project Description and Skills Used
Our team built a web-based stock trading simulator that allows users to evaluate trades, place paper orders, and track their portfolio in real time. At the core of the platform is a pricing model that uses Monte Carlo simulations driven by Geometric Brownian Motion to estimate possible future stock movements. The application was developed in Java 21, with TA4J integrated for technical indicator analysis using data from the IEX market feed. We connected to external services through a Java-based Alpaca API wrapper to pull market data and simulate trade execution, while Finnhub was used to enrich the data with sector insights. Because we worked collaboratively across the same codebase, we relied heavily on GitHub for version control and coordination, gaining hands-on experience managing shared development and resolving merge conflicts efficiently.
Project Development Process
Our primary objective was to design an algorithm capable of executing profitable stock trades. The system was built with a Vaadin-based user interface and utilized the Alpaca API as its primary data source. Due to API rate limitations and data access constraints, the platform was not able to continuously scan or loop through multiple securities for analysis. Instead, users are required to input a specific ticker symbol and manually trigger the analysis for that individual stock. Additionally, the range of technical indicators and simulation capabilities—such as Monte Carlo analysis—was more limited than originally planned. Despite these constraints, the final product successfully met the core project objectives, delivering a functional trading simulation platform with analytical and execution capabilities aligned with our initial goals.
Highlights
When generating our project scope in the planning phase of the project, we wanted to include these 3 key features(plus some needed adjustments) in our trader.
1.) A portfolio dashboard that would include trades made and orders placed, along with profit/loss increments and sector allocations


2.) A trading dashboard that would allow the user to enter a stock’s ticker and output certain indicators including the RSI, MACd, % confidence that a theoretical trade will be profitable, and a trading decision.

3.) A 30 day Monte Carlo Simulation which could return a normal distribution of different likelihoods of the stock price using drift and a random shock each day

Reflection
This project strengthened my understanding of object-oriented design by teaching me how to structure a complex application into modular, maintainable components. I also gained hands-on experience collaborating through GitHub, including managing branches and resolving merge conflicts. Additionally, I developed a more systematic approach to debugging by isolating issues and working through problems step-by-step, especially when integrating external APIs. I wrote methods that helped place orders, helped create a heuristic probability of profit using technical analysis, helped with running the Monte Carlo simulation, and running the strategy (All things I had no idea I was capable of). I grew significantly throughout this project in multiple ways from collaborating with Paxton & Chase when approaching new challenges and conquering unexpected errors. I learned plenty of new packages and functions that were used on the project to execute certain project objectives. I was very fortunate to have two sharp and prepared teammates to navigate this project with, though I have new-found confidence in my code-debugging skills and my role as a team member to hold my weight in a field I’m rather weak in.